/////////////////////////////////////////////////////////
// Timer_Windows
// The timer is responsible for calculating the elapsed
// time.
/////////////////////////////////////////////////////////

#include "Timer_Windows.h"

Frm::Timer* Frm::Timer::_Instance = 0;

//TIMER///////////////////////////////////////////////
/// GETINSTANCE //////////////////////////////////////
// Singleton management
//
//////////////////////////////////////////////////////
Frm::Timer* Timer_Windows::GetInstance(void)
{
	if (Frm::Timer::_Instance == 0)
   	Frm::Timer::_Instance = (Frm::Timer*)new Timer_Windows;
   return Frm::Timer::_Instance;
}


//TIMER///////////////////////////////////////////////
/// GETTIME //////////////////////////////////////////
// returns the time elapsed
// takes care of the timer count wrap around
//////////////////////////////////////////////////////
uint32 Timer_Windows::GetTime(uint16 index)
{
	_old[index] = _new[index];
   _new[index] = GetTickCount();
   if (_old[index]>_new[index])
   	_old[index] -= WRAP;
   return (_new[index] - _old[index]);
}

